﻿using System;
using System.Drawing;
using PokemonBattle.PokemonData.Custom;

namespace PokemonBattle.PokemonData
{
    //public interface IDataProvider
    //{
    //    PokemonBattle.PokemonData.Type GetTypeData(string name);
    //    //PokemonBattle.PokemonData.Type GetTypeData(int id);
    //    MoveData GetMoveData(string name);
    //    //MoveData GetMoveData(int id);
    //    PokemonData GetPokemonData(int identity);
    //    Bitmap GetImage(int identity, long position);

    //    MoveData[] GetAllMoves();
    //    PokemonBattle.PokemonData.Type[] GetAllTypes();
    //    PokemonData[] GetAllPokemons();

    //    CustomDataInfo CustomData { get; }
    //    bool PokemonIsRemoved(int identity);
    //    bool CheckPokemon(PokemonCustomInfo pokemon);

    //    TeamData GetRandomTeam(Random random);
    //}

    public interface IDataProvider
    {
        MoveData[] GetAllMoves();
        PokemonData[] GetAllPokemons();
        Type[] GetAllTypes();

        Bitmap GetImage(int identity, long position);
        MoveData GetMoveData(string name);
        PokemonData GetPokemonData(int identity);
        Type GetTypeData(string name);

        TeamData GetRandomTeam(Random random);
        bool CheckPokemon(PokemonCustomInfo pokemon);
        bool PokemonIsRemoved(int identity);

        CustomDataInfo CustomData { get; }
    }
}